#ifndef CHARACTEROBJECT_H_
#define CHARACTEROBJECT_H_

#include "ClosedObject.h"
#include "NavigationEdgeList.h"
#include "ObjectList.h"

class CharacterObject : public ClosedObject
{
	NavigationEdgeList * navigationEdgeList;
	ObjectList * objectList;
	
	public:
	CharacterObject(ObjectList * objectList, TextureManager * textureManager, Vertex position);
	CharacterObject(ObjectList * objectList, TextureManager * textureManager, Vertex position,
			      	bool isGrabbable,
			      	char * skeletonFile,
			      	NavigationEdgeList * navigationEdgeList);
	~CharacterObject();
	
	void AddEdge(NavigationEdge * edge);
	void RemoveEdge(NavigationEdge * edge);
	
	virtual void AddVertex(Vertex * vertex);
	virtual void AddVertexBefore(Vertex * vertex, Vertex * before);
	virtual void RemoveVertex(Vertex * vertex);
	virtual void GetHoverGroup(Mouse * mouse, VertexList * group);
	virtual char * GetTag();
	virtual void CreatePropertyMenu();	
	NavigationEdgeList * GetNavigationEdgeList();
	virtual Vertex * GetHover(Mouse * mouse);
};
#endif /*CHARACTEROBJECT_H_*/
